<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><title>uLog - NewAC</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.4 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="uLog"></a>uLog</h1><div class=CBody><p>v1.0 By Wayne Thursby</p><p>This logging unit implements a class to log lines of text to a file in a threadsafe manner, flushing the cache afterwards.&nbsp; It is based on SULog.pas by ASI/EDI Inc.&nbsp; Though very little of the original code remains, it was a very well written and well commmented unit.&nbsp; Many of the original comments still remain.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#uLog" >uLog</a></td><td class=SDescription>v1.0 By Wayne Thursby</td></tr><tr class="SSection"><td class=SEntry><a href="#Additions_and_Improvements" >Additions and Improvements</a></td><td class=SDescription>I used the original logging unit as a stable and well thought out base and started adding features to it. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#LogIt" >LogIt</a></td><td class=SDescription>Many overridden LogIt procedures make recording data easy. </td></tr><tr class="SGeneric SIndent2"><td class=SEntry><a href="#Todo_List" >Todo List</a></td><td class=SDescription>Set max logfile size and trim, possibly backing up (compressing?)</td></tr><tr class="SSection"><td class=SEntry><a href="#DCPCrypt" >DCPCrypt</a></td><td class=SDescription>Usage of Twofish requires DCPCrypt which can be found at <a href="http://www.cityinthesky.co.uk/files/dcpcrypt2.zip" class=LURL target=_top>http://www.cityinthesky.co.uk/files/dcpcrypt2.zip</a> courtesy of David at <a href="http://www.cityinthesky.co.uk/cryptography.html" class=LURL target=_top>http://www.cityinthesky.co.uk/cryptography.html</a></td></tr><tr class="SClass"><td class=SEntry><a href="#TLockLog" >TLockLog</a></td><td class=SDescription>The base class for TGUILog and TConsoleLog. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TLockLog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TLockLog.LogToFile" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">LogToFile</a></td><td class=SDescription>Write a string plus carriage-return+linefeed to a text file. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TLockLog.Create" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">Create</a></td><td class=SDescription>Initialize the CriticalSection, $IFDEF DEBUG Erases FILENAME_LOG if it exists.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TLockLog.Destroy;" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">Destroy;</a></td><td class=SDescription>Removes the CriticalSection.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TLockLog.LogText" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">LogText</a></td><td class=SDescription>Override this function in any custom implementations.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TLockLog.DeleteLogFile;" >DeleteLogFile;</a></td><td class=SDescription>Does what it says.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TLockLog.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TLockLog.Filename" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">Filename</a></td><td class=SDescription>If blank, defaults to EXE name + .log.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TLockLog.LogLevel" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">LogLevel</a></td><td class=SDescription>0=always display, 5= debug</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TLockLog.ScreenLevel" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">ScreenLevel</a></td><td class=SDescription>The level of messages to display visually.</td></tr><tr class="SClass"><td class=SEntry><a href="#TConsoleLog" >TConsoleLog</a></td><td class=SDescription>A descendent of TLockLog designed for use in a console application. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TConsoleLog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TConsoleLog.LogText" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">LogText</a></td><td class=SDescription>Write a line to the logfile and writes it to console.</td></tr><tr class="SClass"><td class=SEntry><a href="#TGUILog" >TGUILog</a></td><td class=SDescription>A descendent of TLockLog designed for use in GUI applications. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TGUILog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TGUILog.LogText" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">LogText</a></td><td class=SDescription>Write a line to the logfile and adds it to FLines.</td></tr><tr class="SSection"><td class=SEntry><a href="#Utility_Functions" >Utility Functions</a></td><td class=SDescription>These functions are provided to try and make this unit as accessible as possible.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#WriteToFile" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">WriteToFile</a></td><td class=SDescription>The heart of the unit, writes a single line to the  file specified in sFilename, or FFilename if sFilename is blank.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#LogIt" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call LogIt with the default LogLevel of 0</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#LogIt" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call LogIt with Format</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#LogIt" id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call Logit with Format(sLogText, [i]) adding &lsquo;%d&rsquo; if not found in sLogText</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#LogIt" id=link14 onMouseOver="ShowTip(event, 'tt11', 'link14')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call Logit with Format(sLogText, [d]) except with a double</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#LogIt" id=link15 onMouseOver="ShowTip(event, 'tt11', 'link15')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call Logit a specified LogLevel</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#LogIt" id=link16 onMouseOver="ShowTip(event, 'tt11', 'link16')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Calls Logit with Format(sLogText, [i])</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Additions_and_Improvements"></a>Additions and Improvements</h2><div class=CBody><p>I used the original logging unit as a stable and well thought out base and started adding features to it.&nbsp; The features I have added are as follows.</p><ul><li>Logging is accomplished via global functions that are completely threadsafe.</li><li>Design has been modernized, <a href="#TGUILog" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt12', 'link17')" onMouseOut="HideTip('tt12')">TGUILog</a> and <a href="#TConsoleLog" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt13', 'link18')" onMouseOut="HideTip('tt13')">TConsoleLog</a> have been created to facilitate usage of a TMemo or similar to display logged information in a GUI environment.&nbsp; Screen logging is accomplished through either WriteLn in a console or TStrings.Add in a GUI.&nbsp; This includes seperate &lt;LogLevels&gt; for file and screen logging.</li><li>LogLevels can be set programmatically to filter messages logged to either screen or file independently</li><li>Optional timestamps</li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#LogIt" >LogIt</a></td><td class=SDescription>Many overridden LogIt procedures make recording data easy. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Todo_List" >Todo List</a></td><td class=SDescription>Set max logfile size and trim, possibly backing up (compressing?)</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><p>Many overridden LogIt procedures make recording data easy.&nbsp; It&rsquo;s also simple to use the Format version of LogIt to create your own overridden LogIt procedures dealing with any datatype.</p><blockquote><pre>//Log &quot;message&quot; with default LogLevel of 0 (0 = always display message to user)
LogIt('message');

// Log &quot;message&quot; with LogLevel of 5 (5  = least critical, debug messages)
LogIt(5, 'message');

// Log Format('s1: %s s2: %s', [s1, s2]); this is the &quot;Format Version&quot;
LogIt('s1: %s s2: %s', [s1, s2]);

// Log Format('Count: %d', i); %d is added if not already in the string)
LogIt('Count: ', i);</pre></blockquote></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Todo_List"></a>Todo List</h3><div class=CBody><p>Set max logfile size and trim, possibly backing up (compressing?) old logs</p></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="DCPCrypt"></a>DCPCrypt</h2><div class=CBody><p>Usage of Twofish requires DCPCrypt which can be found at <a href="http://www.cityinthesky.co.uk/files/dcpcrypt2.zip" class=LURL target=_top>http://www.cityinthesky.co.uk/files/dcpcrypt2.zip</a> courtesy of David at <a href="http://www.cityinthesky.co.uk/cryptography.html" class=LURL target=_top>http://www.cityinthesky.co.uk/cryptography.html</a></p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TLockLog"></a>TLockLog</h2><div class=CBody><p>The base class for TGUILog and TConsoleLog.&nbsp; This class provides the common features of both, including encryption and thread safety.&nbsp; This class was not designed to be instantiated directly, but this functionality has been included though not thoroughly tested.&nbsp; When using TLockLog directly, all it does is write to file, this may be desirable in some circumstances..</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TLockLog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TLockLog.LogToFile" id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">LogToFile</a></td><td class=SDescription>Write a string plus carriage-return+linefeed to a text file. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TLockLog.Create" id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip('tt2')">Create</a></td><td class=SDescription>Initialize the CriticalSection, $IFDEF DEBUG Erases FILENAME_LOG if it exists.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TLockLog.Destroy;" id=link21 onMouseOver="ShowTip(event, 'tt3', 'link21')" onMouseOut="HideTip('tt3')">Destroy;</a></td><td class=SDescription>Removes the CriticalSection.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TLockLog.LogText" id=link22 onMouseOver="ShowTip(event, 'tt4', 'link22')" onMouseOut="HideTip('tt4')">LogText</a></td><td class=SDescription>Override this function in any custom implementations.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TLockLog.DeleteLogFile;" >DeleteLogFile;</a></td><td class=SDescription>Does what it says.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TLockLog.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TLockLog.Filename" id=link23 onMouseOver="ShowTip(event, 'tt5', 'link23')" onMouseOut="HideTip('tt5')">Filename</a></td><td class=SDescription>If blank, defaults to EXE name + .log.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TLockLog.LogLevel" id=link24 onMouseOver="ShowTip(event, 'tt6', 'link24')" onMouseOut="HideTip('tt6')">LogLevel</a></td><td class=SDescription>0=always display, 5= debug</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TLockLog.ScreenLevel" id=link25 onMouseOver="ShowTip(event, 'tt7', 'link25')" onMouseOut="HideTip('tt7')">ScreenLevel</a></td><td class=SDescription>The level of messages to display visually.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TLockLog.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TLockLog.LogToFile"></a>LogToFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogToFile(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td></tr><tr><td></td><td class=PParameter nowrap>sFileName:</td><td class=PType nowrap>&nbsp;string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Write a string plus carriage-return+linefeed to a text file.&nbsp; File is appended to if it existed, created otherwise.&nbsp; Buffer is flushed and file is closed before function returns.&nbsp; Exception raised on error.</p><ul><li>upgraded to Enter/Leave CriticalSection</li><li>upgraded to optionally encode text using Twofish</li></ul><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sLogText</td><td class=CDLDescription>string; the string to write</td></tr><tr><td class=CDLEntry>sFileName</td><td class=CDLDescription>string; the name of the file to write to</td></tr></table><h4 class=CHeading>See Also</h4><p><a href="#TGUILog.LogText" class=LFunction id=link26 onMouseOver="ShowTip(event, 'tt9', 'link26')" onMouseOut="HideTip('tt9')">TGUILog.LogText</a> <a href="#TConsoleLog.LogText" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt8', 'link27')" onMouseOut="HideTip('tt8')">TConsoleLog.LogText</a></p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TLockLog.Create"></a>Create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>constructor Create</td></tr></table></blockquote><p>Initialize the CriticalSection, $IFDEF DEBUG Erases FILENAME_LOG if it exists.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TLockLog.Destroy;"></a>Destroy;</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destructor Destroy; override</td></tr></table></blockquote><p>Removes the CriticalSection.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TLockLog.LogText"></a>LogText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function LogText(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>iLogLevel:</td><td class=PType nowrap>&nbsp;integer</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>): string</td></tr></table></td></tr></table></blockquote><p>Override this function in any custom implementations.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TLockLog.DeleteLogFile;"></a>DeleteLogFile;</h3><div class=CBody><p>Does what it says.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TLockLog.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TLockLog.Filename"></a>Filename</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>property Filename: string read FFilename write FFilename</td></tr></table></blockquote><p>If blank, defaults to EXE name + .log.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TLockLog.LogLevel"></a>LogLevel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>property LogLevel: integer read FLogLevel write FLogLevel</td></tr></table></blockquote><p>0=always display, 5= debug</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TLockLog.ScreenLevel"></a>ScreenLevel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>property ScreenLevel: integer read FScreenLevel write FScreenLevel</td></tr></table></blockquote><p>The level of messages to display visually.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TConsoleLog"></a>TConsoleLog</h2><div class=CBody><p>A descendent of TLockLog designed for use in a console application.&nbsp; This class implements output via WriteLn which has its own LogLevel.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TConsoleLog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TConsoleLog.LogText" id=link28 onMouseOver="ShowTip(event, 'tt8', 'link28')" onMouseOut="HideTip('tt8')">LogText</a></td><td class=SDescription>Write a line to the logfile and writes it to console.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TConsoleLog.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TConsoleLog.LogText"></a>LogText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function LogText(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>iLogLevel:</td><td class=PType nowrap>&nbsp;integer</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>): string</td></tr></table></td></tr></table></blockquote><p>Write a line to the logfile and writes it to console.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TGUILog"></a>TGUILog</h2><div class=CBody><p>A descendent of TLockLog designed for use in GUI applications.&nbsp; This class implements output to an assigned TStrings object for easy message display in GUI applications.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TGUILog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TGUILog.LogText" id=link29 onMouseOver="ShowTip(event, 'tt9', 'link29')" onMouseOut="HideTip('tt9')">LogText</a></td><td class=SDescription>Write a line to the logfile and adds it to FLines.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TGUILog.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TGUILog.LogText"></a>LogText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function LogText(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>iLogLevel:</td><td class=PType nowrap>&nbsp;integer</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>): string</td></tr></table></td></tr></table></blockquote><p>Write a line to the logfile and adds it to FLines.</p></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Utility_Functions"></a>Utility Functions</h2><div class=CBody><p>These functions are provided to try and make this unit as accessible as possible.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#WriteToFile" id=link30 onMouseOver="ShowTip(event, 'tt10', 'link30')" onMouseOut="HideTip('tt10')">WriteToFile</a></td><td class=SDescription>The heart of the unit, writes a single line to the  file specified in sFilename, or FFilename if sFilename is blank.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#LogIt" id=link31 onMouseOver="ShowTip(event, 'tt11', 'link31')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call LogIt with the default LogLevel of 0</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#LogIt" id=link32 onMouseOver="ShowTip(event, 'tt11', 'link32')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call LogIt with Format</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#LogIt" id=link33 onMouseOver="ShowTip(event, 'tt11', 'link33')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call Logit with Format(sLogText, [i]) adding &lsquo;%d&rsquo; if not found in sLogText</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#LogIt" id=link34 onMouseOver="ShowTip(event, 'tt11', 'link34')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call Logit with Format(sLogText, [d]) except with a double</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#LogIt" id=link35 onMouseOver="ShowTip(event, 'tt11', 'link35')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Call Logit a specified LogLevel</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#LogIt" id=link36 onMouseOver="ShowTip(event, 'tt11', 'link36')" onMouseOut="HideTip('tt11')">LogIt</a></td><td class=SDescription>Calls Logit with Format(sLogText, [i])</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="WriteToFile"></a>WriteToFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure WriteToFile(</td><td class=PParameter nowrap>sLine:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>sFileName:</td><td class=PType nowrap>&nbsp;string</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>''</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The heart of the unit, writes a single line to the  file specified in sFilename, or FFilename if sFilename is blank.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string</td><td class=PAfterParameters nowrap>); overload</td></tr></table></td></tr></table></blockquote><p>Call LogIt with the default LogLevel of 0</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td></tr><tr><td></td><td class=PParameter nowrap>const Args:</td><td class=PType nowrap>&nbsp;array of const</td><td class=PAfterParameters nowrap>); overload</td></tr></table></td></tr></table></blockquote><p>Call LogIt with Format</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>sLogText:</td><td class=PType nowrap>&nbsp;string;</td></tr><tr><td></td><td class=PParameter nowrap>i:</td><td class=PType nowrap>&nbsp;integer</td><td class=PAfterParameters nowrap>); overload</td></tr></table></td></tr></table></blockquote><p>Call Logit with Format(sLogText, [i]) adding &lsquo;%d&rsquo; if not found in sLogText</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>sLogText:</td><td class=PType nowrap>&nbsp;string;</td></tr><tr><td></td><td class=PParameter nowrap>d:</td><td class=PType nowrap>&nbsp;double</td><td class=PAfterParameters nowrap>); overload</td></tr></table></td></tr></table></blockquote><p>Call Logit with Format(sLogText, [d]) except with a double</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>const iLogLevel:</td><td class=PType nowrap>&nbsp;integer;</td></tr><tr><td></td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string</td><td class=PAfterParameters nowrap>); overload</td></tr></table></td></tr></table></blockquote><p>Call Logit a specified LogLevel</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="LogIt"></a>LogIt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>const iLogLevel:</td><td class=PType nowrap>&nbsp;integer;</td></tr><tr><td></td><td class=PParameter nowrap>sLogText:</td><td class=PType nowrap>&nbsp;string;</td></tr><tr><td></td><td class=PParameter nowrap>i:</td><td class=PType nowrap>&nbsp;integer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls Logit with Format(sLogText, [i])</p></div></div></div>

</div><!--Content-->


<div id=Footer>Content &copy; 2008 Andrei Borovsky. Design &copy; 2008 Wayne Thursby. <b><u><a href="http://symmetrica.net/newac">Go to the project's main page</a></u></b>&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>NewAC<div class=MSubTitle>v1.7.1</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Documentation</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../doc/txt/introduction-txt.html">Quick Introduction to NewAC</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/about_documentation-txt.html">About the Documentation</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/cwguide-txt.html">Component Writer&rsquo;s Guide</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/license-txt.html">License</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/tips_and_tricks-txt.html">Tips &amp; Tricks</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/newac-txt.html">About New Audio Components</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/features-txt.html">NewAC Main Features List</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Main Units</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../src/ACS_AudioMix-pas.html">ACS_AudioMix</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_CDROM-pas.html">ACS_CDROM</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Classes-pas.html">ACS_Classes</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Converters-pas.html">ACS_Converters</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_DXAudio-pas.html">ACS_DXAudio</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_FLAC-pas.html">ACS_FLAC</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Filters-pas.html">ACS_Filters</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_LAME-pas.html">ACS_LAME</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_MAC-pas.html">ACS_MAC</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_MPC-pas.html">ACS_MPC</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_OptimFROG-pas.html">ACS_OptimFROG</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_smpeg-pas.html">ACS_SMPEG</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Streams-pas.html">ACS_Streams</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_TTA-pas.html">ACS_TTA</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Tags-pas.html">ACS_Tags</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Vorbis-pas.html">ACS_Vorbis</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_WavPack-pas.html">ACS_WavPack</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Wave-pas.html">ACS_Wave</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_WinMedia-pas.html">ACS_WinMedia</a></div></div><div class=MEntry><div class=MFile><a href="../src/AudioDMO-pas.html">AudioDMO</a></div></div><div class=MEntry><div class=MFile><a href="../src/AudioPass-pas.html">AudioPass</a></div></div><div class=MEntry><div class=MFile><a href="../src/AuSampleRate-pas.html">AuSampleRate</a></div></div><div class=MEntry><div class=MFile><a href="../src/NewAC_AVI-pas.html">NewAC_AVI</a></div></div><div class=MEntry><div class=MFile><a href="../src/libsamplerate-pas.html">libsamplerate.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/MACDll-pas.html">MACDll.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/ogg-pas.html">ogg.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/ovencode-pas.html">ovencode</a></div></div><div class=MEntry><div class=MFile><a href="../src/VorbisEnc-pas.html">VorbisEnc.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/VorbisFile-pas.html">VorbisFile.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/WaveConverter-pas.html">WaveConverter.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/WavPackDLL-pas.html">WavPackDLL</a></div></div><div class=MEntry><div class=MFile><a href="../src/wmfintf-pas.html">wmfintf.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/NewAC_DSP-pas.html">NewAC_DSP</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Converted C/C++ Headers</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../src/CDRip-pas.html">CDRip</a></div></div><div class=MEntry><div class=MFile><a href="../src/Codec-pas.html">Codec</a></div></div><div class=MEntry><div class=MFile><a href="../src/DSWrapper-pas.html">DSWrapper</a></div></div><div class=MEntry><div class=MFile><a href="../src/FLAC-pas.html">FLAC</a></div></div><div class=MEntry><div class=MFile><a href="../src/libwma1-pas.html">libwma1.pas</a></div></div><div class=MEntry><div class=MFile><a href="../src/_DirectSound-pas.html">_DirectSound</a></div></div><div class=MEntry><div class=MFile><a href="../src/_DXTypes-pas.html">_DXTypes</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Utility Units</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../src/ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Procs-pas.html">ACS_Procs</a></div></div><div class=MEntry><div class=MFile><a href="../src/acs_reg-pas.html">ACS_Reg</a></div></div><div class=MEntry><div class=MFile><a href="../src/ACS_Types-pas.html">ACS_Types</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Tutorials</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MFile><a href="../demos/Tutorial/AudioProcessor/Main-pas.html">Audio Processor</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Tutorial/ComponentsDemo/ComponentsDemo-pas.html">Components Demo</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Recorders-rippers/Rip'n'listen/Main-pas.html">Rip&rsquo;n&rsquo;Listen Demo</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">DUnit</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="Test_ACS_FLAC-pas.html">ACS_FLAC TestCases</a></div></div><div class=MEntry><div class=MFile><a href="Test_ACS_MAC-pas.html">ACS_MAC TestCases</a></div></div><div class=MEntry><div class=MFile><a href="Test_ACS_WavPack-pas.html">ACS_WavPack TestCases</a></div></div><div class=MEntry><div class=MFile id=MSelected>uLog</div></div><div class=MEntry><div class=MFile><a href="uTestBase-pas.html">uTestBase</a></div></div><div class=MEntry><div class=MFile><a href="uUtility-pas.html">uUtility</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Index</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Properties.html">Properties</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Types.html">Types</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Properties">Properties</option><option value="Types">Types</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([6, 7, 5], 8);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogToFile(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td></tr><tr><td></td><td class=PParameter nowrap>sFileName:</td><td class=PType nowrap>&nbsp;string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Write a string plus carriage-return+linefeed to a text file. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>constructor Create</td></tr></table></blockquote>Initialize the CriticalSection, $IFDEF DEBUG Erases FILENAME_LOG if it exists.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destructor Destroy; override</td></tr></table></blockquote>Removes the CriticalSection.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function LogText(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>iLogLevel:</td><td class=PType nowrap>&nbsp;integer</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>): string</td></tr></table></td></tr></table></blockquote>Override this function in any custom implementations.</div></div><div class=CToolTip id="tt5"><div class=CProperty><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>property Filename: string read FFilename write FFilename</td></tr></table></blockquote>If blank, defaults to EXE name + .log.</div></div><div class=CToolTip id="tt6"><div class=CProperty><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>property LogLevel: integer read FLogLevel write FLogLevel</td></tr></table></blockquote>0=always display, 5= debug</div></div><div class=CToolTip id="tt7"><div class=CProperty><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>property ScreenLevel: integer read FScreenLevel write FScreenLevel</td></tr></table></blockquote>The level of messages to display visually.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function LogText(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>iLogLevel:</td><td class=PType nowrap>&nbsp;integer</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>): string</td></tr></table></td></tr></table></blockquote>Write a line to the logfile and writes it to console.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function LogText(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>iLogLevel:</td><td class=PType nowrap>&nbsp;integer</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>): string</td></tr></table></td></tr></table></blockquote>Write a line to the logfile and adds it to FLines.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure WriteToFile(</td><td class=PParameter nowrap>sLine:</td><td class=PType nowrap>&nbsp;string;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>sFileName:</td><td class=PType nowrap>&nbsp;string</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>''</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>The heart of the unit, writes a single line to the  file specified in sFilename, or FFilename if sFilename is blank.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure LogIt(</td><td class=PParameter nowrap>const sLogText:</td><td class=PType nowrap>&nbsp;string</td><td class=PAfterParameters nowrap>); overload</td></tr></table></td></tr></table></blockquote>Call LogIt with the default LogLevel of 0</div></div><div class=CToolTip id="tt12"><div class=CClass>A descendent of TLockLog designed for use in GUI applications. </div></div><div class=CToolTip id="tt13"><div class=CClass>A descendent of TLockLog designed for use in a console application. </div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>